package com.jt.www.domain.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 批单详情对接 保单服务中心对象
 * Created by shaoyn on 2020/06/04.
 */
public class EndorsementDto {

    @ApiModelProperty(value = "批单申请号-不可批改-显示-非必填")
    private String applyNo;

    @ApiModelProperty(value = "批单号-不可批改-显示-必填")
    private String endorsementsNo;

    @ApiModelProperty(value = "批改类型-不可批改-显示-必填//01-般性批改,02-批减,03-批加,04-批退,05-协议批加,06-协议批减，")
    private String endorsementsType;

    @ApiModelProperty(value = "批改方式-不可批改-不显示-必填//02")
    private String endorsementMode;

    @ApiModelProperty(value = "保单保费-不可批改-显示-必填")
    private BigDecimal policyPremium;

    @ApiModelProperty(value = "投保单号-不可批改-显示-必填")
    private String appCode;

    @ApiModelProperty(value = "原保单号-不可批改-显示-必填")
    private String insuranceNo;

    @ApiModelProperty(value = "批单保费-不可批改-显示-必填")
    private BigDecimal batchPremium;

    @ApiModelProperty(value = "产品编码-不可批改-不显示-必填")
    private String productCode;

    @ApiModelProperty(value = "产品名称-不可批改-显示-必填")
    private String productName;

    @ApiModelProperty(value = "产品类型-不可批改-不显示-必填//00")
    private String productType;

    @ApiModelProperty(value = "渠道编码-不可批改-不显示-必填")
    private String channelCode;

    @ApiModelProperty(value = "渠道名称-不可批改-不显示-必填")
    private String channelName;

    @ApiModelProperty(value = "批改原因-不可批改-显示-非必填")
    private String reason;

    @ApiModelProperty(value = "批单保险起期-不可批改-显示-非必填")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date startDate;

    @ApiModelProperty(value = "批单保险止期-不可批改-显示-非必填")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date endDate;

    @ApiModelProperty(value = "批单生效日期-不可批改-显示-必填")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date validDate;

    @ApiModelProperty(value = "签单日期-不可批改-不显示-非必填")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date issueDate;

    @ApiModelProperty(value = "批单对象编码-不可批改-不显示-必填 投保人编码")
    private String applicantCode;

    @ApiModelProperty(value = "批单对象-不可批改-不显示-必填 投保人名称")
    private String applicant;

    @ApiModelProperty(value = "机构编码-不可批改-不显示-必填")
    private String branchCode;

    @ApiModelProperty(value = "机构名称-不可批改-不显示-必填")
    private String branchName;

    @ApiModelProperty(value = "保费变动前金额-不可批改-不显示-必填")
    private BigDecimal premiumAmountBefore;

    @ApiModelProperty(value = "变动后保费金额-不可批改-不显示-非必填")
    private BigDecimal premiumAmountAfter;

    @ApiModelProperty(value = "批单附件-不可批改-不显示-非必填")
    private List<AttachmentsDto> attachments;

    private  String reasonForBacklog;

    private Date revenueRecognitionTime;

    private  String revenueRecognitionReason;

    private  String revenueRecognitionFile;

    private  String revenueRecognitionOtherReason;

    public String getApplyNo() {
        return applyNo;
    }

    public void setApplyNo(String applyNo) {
        this.applyNo = applyNo;
    }

    public String getEndorsementsNo() {
        return endorsementsNo;
    }

    public void setEndorsementsNo(String endorsementsNo) {
        this.endorsementsNo = endorsementsNo;
    }

    public String getEndorsementsType() {
        return endorsementsType;
    }

    public void setEndorsementsType(String endorsementsType) {
        this.endorsementsType = endorsementsType;
    }

    public String getEndorsementMode() {
        return endorsementMode;
    }

    public void setEndorsementMode(String endorsementMode) {
        this.endorsementMode = endorsementMode;
    }

    public BigDecimal getPolicyPremium() {
        return policyPremium;
    }

    public void setPolicyPremium(BigDecimal policyPremium) {
        this.policyPremium = policyPremium;
    }

    public String getAppCode() {
        return appCode;
    }

    public void setAppCode(String appCode) {
        this.appCode = appCode;
    }

    public String getInsuranceNo() {
        return insuranceNo;
    }

    public void setInsuranceNo(String insuranceNo) {
        this.insuranceNo = insuranceNo;
    }

    public BigDecimal getBatchPremium() {
        return batchPremium;
    }

    public void setBatchPremium(BigDecimal batchPremium) {
        this.batchPremium = batchPremium;
    }

    public String getProductCode() {
        return productCode;
    }

    public void setProductCode(String productCode) {
        this.productCode = productCode;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String getProductType() {
        return productType;
    }

    public void setProductType(String productType) {
        this.productType = productType;
    }

    public String getChannelCode() {
        return channelCode;
    }

    public void setChannelCode(String channelCode) {
        this.channelCode = channelCode;
    }

    public String getChannelName() {
        return channelName;
    }

    public void setChannelName(String channelName) {
        this.channelName = channelName;
    }

    public String getReason() {
        return reason;
    }

    public void setReason(String reason) {
        this.reason = reason;
    }

    public Date getStartDate() {
        return startDate;
    }

    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public Date getValidDate() {
        return validDate;
    }

    public void setValidDate(Date validDate) {
        this.validDate = validDate;
    }

    public Date getIssueDate() {
        return issueDate;
    }

    public void setIssueDate(Date issueDate) {
        this.issueDate = issueDate;
    }

    public String getApplicantCode() {
        return applicantCode;
    }

    public void setApplicantCode(String applicantCode) {
        this.applicantCode = applicantCode;
    }

    public String getApplicant() {
        return applicant;
    }

    public void setApplicant(String applicant) {
        this.applicant = applicant;
    }

    public String getBranchCode() {
        return branchCode;
    }

    public void setBranchCode(String branchCode) {
        this.branchCode = branchCode;
    }

    public String getBranchName() {
        return branchName;
    }

    public void setBranchName(String branchName) {
        this.branchName = branchName;
    }

    public BigDecimal getPremiumAmountBefore() {
        return premiumAmountBefore;
    }

    public void setPremiumAmountBefore(BigDecimal premiumAmountBefore) {
        this.premiumAmountBefore = premiumAmountBefore;
    }

    public BigDecimal getPremiumAmountAfter() {
        return premiumAmountAfter;
    }

    public void setPremiumAmountAfter(BigDecimal premiumAmountAfter) {
        this.premiumAmountAfter = premiumAmountAfter;
    }

    public List<AttachmentsDto> getAttachments() {
        return attachments;
    }

    public void setAttachments(List<AttachmentsDto> attachments) {
        this.attachments = attachments;
    }

    public String getReasonForBacklog() {
        return reasonForBacklog;
    }

    public void setReasonForBacklog(String reasonForBacklog) {
        this.reasonForBacklog = reasonForBacklog;
    }

    public Date getRevenueRecognitionTime() {
        return revenueRecognitionTime;
    }

    public void setRevenueRecognitionTime(Date revenueRecognitionTime) {
        this.revenueRecognitionTime = revenueRecognitionTime;
    }

    public String getRevenueRecognitionReason() {
        return revenueRecognitionReason;
    }

    public void setRevenueRecognitionReason(String revenueRecognitionReason) {
        this.revenueRecognitionReason = revenueRecognitionReason;
    }

    public String getRevenueRecognitionFile() {
        return revenueRecognitionFile;
    }

    public void setRevenueRecognitionFile(String revenueRecognitionFile) {
        this.revenueRecognitionFile = revenueRecognitionFile;
    }

    public String getRevenueRecognitionOtherReason() {
        return revenueRecognitionOtherReason;
    }

    public void setRevenueRecognitionOtherReason(String revenueRecognitionOtherReason) {
        this.revenueRecognitionOtherReason = revenueRecognitionOtherReason;
    }
}
